//
// Created by francklinson on 2021/5/27.
//
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

class Solution {
public:
    bool check(vector<int> &nums) {
        if (is_sorted(nums.begin(), nums.end())) return true;
        if (nums.size() == 2) return true;
        int i = 0;
        // 找到断点
        while (i < nums.size() - 1 and nums[i] <= nums[i + 1]) ++i;
        // 截取后半段
        vector<int> temp(nums.begin() + i + 1, nums.end());
        // 拼接上前半段
        temp.insert(temp.end(), nums.begin(), nums.begin() + i+1);
        // 判断是否有序
        return is_sorted(temp.begin(), temp.end());
    }
};

int main() {
    vector<int> v{2, 1, 3, 4};
    Solution sol;
    cout << sol.check(v) << endl;
    return 0;
}